package com.ktwlrj.securitycenter.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.ktwlrj.core.base.SuperServer;
import com.ktwlrj.securitycenter.controller.args.SafeApproveArgs;
import com.ktwlrj.securitycenter.controller.args.SafeSpecialApplyArgs;
import com.ktwlrj.securitycenter.controller.args.SafeSpecialApprovePageArgs;
import com.ktwlrj.securitycenter.controller.args.SafeSpecialArgs;
import com.ktwlrj.securitycenter.controller.args.SafeSpecialFormArgs;
import com.ktwlrj.securitycenter.controller.args.SafeSpecialPageArgs;
import com.ktwlrj.securitycenter.dto.SafeSpecialApprovePageDto;
import com.ktwlrj.securitycenter.dto.SafeSpecialDto;
import com.ktwlrj.securitycenter.dto.SafeSpecialFormDto;
import com.ktwlrj.securitycenter.dto.SafeSpecialPageDto;
import com.ktwlrj.securitycenter.entity.SafeSpecialEntity;

/**
 * (SafeSpecial)业务层接口
 *
 * @author code generation
 * @date 2020-02-24 18:08:13
 * @since JDK1.8
 */
public interface SafeSpecialService extends SuperServer<SafeSpecialEntity> {
    /**
     * 保存
     *
     * @param args ${@link SafeSpecialArgs}
     * @throws RuntimeException ${@link RuntimeException}
     * @author code generation
     * @date 2020-02-24 18:08:13
     */
    void save(SafeSpecialFormArgs args) throws RuntimeException;


    /**
     * 通过id更新
     *
     * @param args ${@link SafeSpecialArgs}
     * @throws RuntimeException ${@link RuntimeException}
     * @author code generation
     * @date 2020-02-24 18:08:13
     */
    void updateById(SafeSpecialFormArgs args) throws RuntimeException;


    /**
     * 分页查询
     *
     * @param args ${@link SafeSpecialPageArgs}
     * @throws RuntimeException ${@link RuntimeException}
     * @return IPage<SafeSpecialPageDto> ${@link IPage<SafeSpecialDto>}
     * @author code generation
     * @date 2020-02-24 18:08:13
     */
    IPage<SafeSpecialPageDto> page(SafeSpecialPageArgs args) throws RuntimeException;


    /**
     * 历史分页信息
     * @param args
     * @return
     * @throws RuntimeException
     */
    IPage<SafeSpecialPageDto> historyPage(SafeSpecialPageArgs args) throws RuntimeException;
    
    /**
     * 审批分页信息
     * @param args
     * @return
     * @throws RuntimeException
     */
    IPage<SafeSpecialApprovePageDto> approvePage(SafeSpecialApprovePageArgs args) throws RuntimeException;
    /**
     * 通过id查询详情
     *
     * @param id ${@link String}
     * @throws RuntimeException ${@link RuntimeException}
     * @return SafeSpecialDto ${@link SafeSpecialDto}
     * @author code generation
     * @date 2020-02-24 18:08:13
     */
    SafeSpecialFormDto getById(String id) throws RuntimeException;
    
    /**
     * 提交特殊房屋交易信息
     * @param args
     * @throws RuntimeException
     */
    void submit(SafeSpecialApplyArgs args) throws RuntimeException;
    
    /**
     * 复制并新增 特殊房屋交易信息
     * @param id
     * @throws RuntimeException
     */
    void changeInsert(SafeSpecialFormArgs args) throws RuntimeException;
    
    /**
     * 删除特殊房屋交易信息
     * @param id
     * @throws RuntimeException
     */
    void deleteById(String id)throws RuntimeException;
    
    /**
     * 删除申请提交
     * @param args
     */
    void  deleteApply(SafeSpecialApplyArgs args);
    
    /**
     * 审批处理
     * @param args
     */
    void approveHandle(SafeApproveArgs args);
}